package yl.hs.bmipfull.daos.system;


import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import yl.hs.bmipfull.daos.BaseDao;
import yl.hs.bmipfull.pojo.system.RoleInfoEntity;

import java.util.List;
import java.util.Map;

/**
 * @author 谢景广
 * @category 角色信息数据存储服务
 */
@Repository
public interface IRoleInfoDao extends BaseDao<RoleInfoEntity> {

    /**
     * 根据用户编号获取用户所有角色信息
     *
     * @param userSN 用户信息编号
     * @return
     */
    List<RoleInfoEntity> queryRolesByUserSN(@Param("userSN") String userSN);

    /**
     * 根据查询条件获取数据
     *
     * @param condition
     * @return
     */
    List<RoleInfoEntity> queryByCondition(String condition);

    /**
     * 根据查询条件统计数据数量
     *
     * @param query 查询条件
     * @return 数据数量
     */
    Integer queryCountByCondition(@Param("query") Map<String, Object> query);

    /**
     * 根据分页查询参数获取角色分页查询结果
     *
     * @param query 分页查询参数
     * @return
     */
    List<RoleInfoEntity> queryListByCondition(@Param("query") Map<String, Object> query);

    /**
     * 根据用户角色编号修改用户角色状态到指定状态
     *
     * @param state 要改变到指定状态
     * @param sn    用户角色编号数组
     * @return
     */
    Integer changeRoleState(short state, String[] sn);

    /**
     * 根据编号获取角色信息
     * @param snList 角色编号集合
     * @return 角色集合
     */
    List<RoleInfoEntity> queryRolesBySn(@Param("snList") List<String> snList);
}
